iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0

一直在討論指向資料物件的指標。C 也允許宣告函式的指標。函式指標有多種用途,這裡將討論其中一些。

考慮以下實際問題。想要撰寫一個函式,該函式能夠對幾乎任何可以儲存在陣列中的資料集合進行排序。這可能是字串、整數、浮點數,甚至是結構的陣列。排序演算法對所有人來說都可以是相同的。例如,它可以是簡單的冒泡排序演算法,也可以是更複雜的 shell 或快速排序演算法。我們將使用簡單的冒泡排序來進行演示。

Sedgewick 通過設置一個函式來描述使用 C 代碼的冒泡排序,當傳遞指向數組的指針時,該函數將對其進行排序。如果我們呼叫該函式 bubble(),則 bubble_1.c 描述了一個排序程序,如下所示:

/*  bubble_1.c */
#include <stdio.h>

int arr[10] = { 3,6,1,2,3,8,4,1,7,2};

void bubble(int a[], int N);

int main(void)
{
    int i;
    putchar('\n');
    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    bubble(arr,10);
    putchar('\n');

    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

void bubble(int a[], int N)
{
    int i, j, t;
    for (i = N-1; i >= 0; i--)
    {
        for (j = 1; j <= i; j++)
        {
            if (a[j-1] > a[j])
            {
                t = a[j-1];
                a[j-1] = a[j];
                a[j] = t;
            }
        }
    }
}

上一篇
C 語言指標
下一篇
C 語言結構與指標
系列文
c 語言與 python 的30天之旅8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言